home *** CD-ROM | disk | FTP | other *** search
/ Mission 3 / Mission 3.zip / Mission 3.iso / texte / qed / src / wp_print.h < prev   
C/C++ Source or Header  |  1998-03-13  |  5KB  |  131 lines

  1. /*
  2.  * Schnittstelle für ASCII-Druckfunktionen, die einen Wordplus-Treiber
  3.  * benutzen.
  4.  * Basiert auf Modula2-Quellen von Uwe Mindrup, 1993
  5.  * PureC-Portierung von Christian Felsch, 1995
  6.  *
  7.  *  Druckertreiber;
  8.  *  Der Druckertreiber dient dazu, Texte mit Hilfe der reichlich vorhandenen
  9.  *  Druckeranpassungen für Wordplus ausdrucken zu können. Zur Initialisierung
  10.  *  muß eine CFG-Datei geladen werden.
  11.  *  Aufbau einer CFG-Datei:
  12.  *  - Header 'GST-CFG:'; dient als Kennung zur Unterscheidung von anderen
  13.  *                       Formaten.
  14.  *  - Es folgen sechs Bytes mit folgender Bedeutung:
  15.  *    (1)   1 für Typenrad mit horizontalem Spacing, sonst 0
  16.  *    (2)   Zeichenbreite in Druckereinheiten (Typenrad)
  17.  *    (3)   Zeilenabstand in Druckereinheiten
  18.  *    (4)   Wagenmitte (Typenrad); Pixel/Inch (Matrixdrucker)
  19.  *    (5)   Zeichenabstand bei Fettdruck (Typenrad)
  20.  *    (6)   1 Pause mit Abfrage zwischen Seiten, sonst 0
  21.  *    Diese Werte werden vom vorliegenden Modul ignoriert.
  22.  *
  23.  *  - Jetzt folgen die Druckercharakteristiken.
  24.  *    Diese Tabelle enthält die Steuersequenzen, die zur Steuerung des
  25.  *    Druckers benutzt werden (hoch, tief, fett, unterstrichen, kursiv,
  26.  *    Draft, NLQ etc).
  27.  *    Die Tabelle endet mit einem Null-Byte.
  28.  *  - Zuletzt folgt die Übersetzungstabelle. Hier werden einzelne Zeichen
  29.  *    in andere Zeichen (-folgen) umgesetzt.
  30.  *    Auch diese Tabelle endet mit einem Null-Byte.
  31.  *
  32.  *  Bei einer Initialisierung werden alle Aussschaltsequenzen der aktuellen
  33.  *  Druckqualität sowie die horizontale und vertikale Initialisierung durch-
  34.  *  laufen.
  35.  *  Sind die Sequenzen der Druckercharakteristiken für die beiden
  36.  *  Druckqualitäten gleich (unterscheiden sich also nur durch die Ein/Ausschalt-
  37.  *  sequenz für NLQ/Draft), dann reicht es aus, nur bei einer Ausschaltsequenz
  38.  *  die entsprechende Schriftqualität zu setzen (am besten bei einer selten
  39.  *  benötigten Sequenz, z.B. Index unten).
  40.  *  Mehr noch: Für die übrigen Druckercharakteristiken reicht es aus, wenn die
  41.  *  Sequenz nur in der einen Schriftqualität gesetzt wird. Der Treiber setzt die
  42.  *  Sequenz automatisch auch für die andere Schriftqualität ein.
  43.  *
  44.  */
  45. #ifndef _wp_print_h_ 
  46. #define _wp_print_h_ 
  47.  
  48. #define PICA       0    /* 10 cpi */
  49. #define ELITE      1    /* 12 cpi */
  50. #define CONDENSED  2    /* 17 cpi */
  51. #define EXPANDED   3    /*  6 cpi */
  52. /* 
  53.  * Werte für die Zeichenbreite (SetMode)
  54. */
  55.  
  56.  
  57. extern bool    wp_load_cfgfile    (char *name);
  58. /* 
  59.  * Eröffnung einer CFG-Datei. Der komplette Dateiname muß übergeben werden.
  60.  * Die Extension wird ggfs. automatisch korrigiert.
  61.  * Die Datei wird nach Eröffnung auf die Dateikennung in den ersten 8 Bytes
  62.  * überprüft ('GST-CFG:'). 
  63. */
  64.  
  65. extern void    wp_get_prnname        (char *Printername, int max_len);
  66. /* 
  67.  * Eingetragenen Druckernamen liefern. Falls keiner vorhanden ist, dann
  68.  * wird ein Leerstring ('') geliefert.
  69.  * max_len begrenzt die Namenslänge.
  70. */
  71.  
  72. extern bool    wp_send_exit        (void);
  73. /* 
  74.  * Es wird Eintrag 21H (Allgemeiner Druckerreset am Textende) gesendet.
  75. */
  76.  
  77. extern bool    wp_send_init        (bool use_nlq);
  78. /*
  79.  * Drucker-Initialisierung senden. Es werden nacheinander folgende
  80.  * Einträge geschickt (in Klammern die NLQ-Einträge):
  81.  * - Eintrag 20H       Horizontale Initialisierung
  82.  * - Eintrag 1FH       Vertikale Initialisierung
  83.  * - Eintrag  7H ( 9H) Fettschrift aus.
  84.  * - Eintrag  BH ( DH) Kursivschrift aus.
  85.  * - Eintrag  FH (11H) Light aus.
  86.  * - Eintrag 13H (15H) Superscript aus.
  87.  * - Eintrag 17H (19H) Subscript aus.
  88.  * - Eintrag 1BH (1DH) Unterstreichung aus.
  89.  * - Falls vorhanden, werden noch die folgenden Sequenzn geschickt:
  90.  * - Eintrag 28H (29H) PICA (10 CPI).
  91.  * - Eintrag 30H       Color-Einstellung: Black.
  92.  * - Eintrag 35H       Proportional-Schrift wird ausgeschaltet.
  93. */
  94.  
  95. extern bool    wp_set_mode            (int Mode);
  96. /*
  97.  * Zeichenbreite einstellen.
  98.  *   Achtung: vorher 'SendInit' durchführen!
  99.  *   Unterstützt werden:
  100.  *   - PICA      = 0;    (* 10 cpi *)
  101.  *   - ELITE     = 1;    (* 12 cpi *)
  102.  *   - CONDENSED = 2;    (* 17 cpi *)
  103.  *   - EXPANDED  = 3;    (*  6 cpi *)
  104. */
  105.  
  106. extern bool    wp_formfeed            (void);
  107. /* 
  108.  * Seitenvorschub ausgeben
  109. */
  110.  
  111. extern void    wp_set_tabsize        (int tab);
  112. /* 
  113.  * Tabulatorweite einstellen
  114. */
  115.  
  116. extern bool    wp_write                (char ch);
  117. extern bool    wp_write_string    (char *Str);
  118. extern bool    wp_write_ln            (void);
  119.  
  120. extern bool    wp_open                (char *Name);
  121. /* 
  122.  * Eröffnung eines Druckerkanals
  123. */
  124.  
  125. extern void    wp_close                (void);
  126. /* 
  127.  * Schließung eines Druckerkanals
  128. */
  129.  
  130. #endif
  131.